package com.zlkj.pro.modular.business.model.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.*;

import java.time.LocalDate;
import java.util.Date;
import java.util.List;

/**
 * @author liyang
 * @date 2024/4/6
 * @time 14:34
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ReportDTO extends MyBaseRequest {

    private Long id;

    private String code;

    private Integer status;

    private Integer conferStatus;

    private Integer certificateStatus;

    private Long agentId;

    private Long customerId;

    private String customerName;

    private Integer customerType;

    private String customerClassify;

    private String customerAddress;

    private String customerAddressDetail;

    private Integer customerLevel;

    private Integer customerStatus;

    private String customerUscc;

    private String customerRemark;

    private String customerContactsId;

    private String customerContactsName;

    private String customerContactsPhone;

    private String invalidSource;

    private String invalidReason;

    private LocalDate expirationDateStart;

    private LocalDate expirationDateEnd;

    private LocalDate delayDate;

    private String delayReason;

    private String remark;

    private LocalDate applyEndDate;

    private LocalDate transactionDate;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 创建人
     */
    private Long createUser;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 更新人
     */
    private Long updateUser;

    /**
     * 删除标记：Y-已删除，N-未删除
     */
    private String delFlag;


    //-----------------------
    private Long userId;

    private String queryString;

    private List<ReportProductDTO> products;

    // 客户是否认可
    private Boolean isApprove;

    // 延期附件
    List<Long> delayFileIds;

    private Date delayApplyTime;

    private Long delayCreateUserId;

    private Date delayPassTime;

    private Long delayPassUserId;


    // 审批动作 (1、同意 2、拒绝 3、终止)
    private Integer action;
    // 审批拒绝原因
    private String reason;

    private Integer defaultStatus;

    // 补全身份证号
    private String cerCode;

    private String installAddress;

    private String whyAutoFail;

    private Integer roleId;

    private Integer pageNum;

    private Integer pageSize;

    private String dataTimeStart;

    private String dataTimeEnd;

    private String sellCode;

    // 1.按客户创建人以及是否下级创建权限查询 2.查询本代理商全部
    private Integer queryType;

}